<?php

class PdoSio {

    private static $serveur = 'mysql:host=localhost';
    private static $bdd = 'dbname=ppe4mission4';
    private static $user = 'jeremie.lecornu';
    private static $mdp = 'jl8239*';
    private static $monPdo = null;
    private static $monPdoSio = null;

    private function __construct() {
        PdoSio::$monPdo = new PDO(PdoSio::$serveur . ';' . PdoSio::$bdd, PdoSio::$user, PdoSio::$mdp);
        PdoSio::$monPdo->query("SET CHARACTER SET utf8");
    }

    public function _destruct() {
        PdoSio::$monPdo = null;
    }

    public static function getPdoSio() {
        if (PdoSio::$monPdoSio == null) {
            PdoSio::$monPdoSio = new PdoSio();
        }
        return PdoSio::$monPdoSio;
    }

    public function requeteAction($requete) {
        $res = PdoSio::$monPdo->exec($requete);
        return $res > 0;
    }

    public function requeteSelection($requete) {

        $res = PdoSio::$monPdo->query($requete);

        if ($res == null) {
            return null;
        } else {
            return $res->fetchall(PDO::FETCH_NAMED);
        }
    }

    /**
     * Méthode connexionUtilisateur
     * @author NC 
     * @return boolean true si la connexion est ok, false sinon
     * @param string $identifiant identifiant de l'utilisateur
     * @param int $motDePasse mot de passe à crypter en md5
     */
    public function connexionUtilisateur($identifiant, $motDePasse) {
        $resultats = $this->requeteSelection("select * from utilisateurs where identifiant='$identifiant' and mot_de_passe='$motDePasse'");
            if (count($resultats) > 0) {
                return $resultats[0];
            } else {
                return false;
            }
    }

    public function ajoutUtilisateur($nom, $prenom, $adresseRue, $adresseCp, $adresseVille, $telPerso, $telPro, $courriel, $site, $anneeEntree, $anneeSortie, $identifiant, $mdp) {
        $resultats = $this->requeteAction("INSERT INTO utilisateurs_attente_validation VALUES(null,'" . $nom . "','" . $prenom . "','" . $adresseRue . "','" . $adresseCp . "','" . $adresseVille . "','" . $telPerso . "','" . $telPro . "','" . $courriel . "','" . $site . "','" . $anneeEntree . "','" . $anneeSortie . "','" . $identifiant . "','" . $mdp . "') ");
        return $resultats;
    }
    
    public function selectUtilisateur($id_utilisateur){
        $resultats = $this->requeteSelection("SELECT * from utilisateurs WHERE id_utilisateur=".$id_utilisateur);
        return $resultats[0];
    }
    
    public function afficherLesUtilisateurs(){
        $resultats = $this->requeteSelection("SELECT * from utilisateurs");
        return $resultats;
    }
    
    public function modifUtilisateur($id_utilisateur, $nom, $prenom, $adresseRue, $adresseCp, $adresseVille, $telPerso, $telPro, $courriel, $site, $anneeEntree, $anneeSortie){
        $resultats = $this->requeteAction("UPDATE utilisateurs SET nom='$nom', prenom='$prenom', adresse_rue='$adresseRue', adresse_cp='$adresseCp', adresse_ville='$adresseVille', tel_personnel='$telPerso', tel_professionnel='$telPro', mail='$courriel', site_web='$site', annee_entree_promotion='$anneeEntree', annee_sortie_promotion='$anneeSortie' WHERE id_utilisateur=$id_utilisateur");
        return $resultats;
    }
    
    public function supprUtilisateur($id_utilisateur){
        $resultat = $this->requeteAction("DELETE FROM utilisateurs WHERE id_utilisateur=$id_utilisateur");
        return $resultat;
    }
}
